package com.hnist.empdemo.utils;

import java.util.prefs.Preferences;

/**
 * 自动登录管理器，用于管理自动登录次数限制
 */
public class AutoLoginManager {
    private static final String PREFS_NODE = "com/hnist/empdemo";
    private static final String AUTO_LOGIN_COUNT_KEY = "autoLoginCount";
    private static final int MAX_AUTO_LOGIN_ATTEMPTS = 3; // 最大自动登录次数
    
    private Preferences prefs;
    
    public AutoLoginManager() {
        this.prefs = Preferences.userRoot().node(PREFS_NODE);
    }
    
    /**
     * 增加自动登录计数
     */
    public void incrementAutoLoginCount() {
        int currentCount = prefs.getInt(AUTO_LOGIN_COUNT_KEY, 0);
        prefs.putInt(AUTO_LOGIN_COUNT_KEY, currentCount + 1);
        try {
            prefs.flush();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    /**
     * 重置自动登录计数器
     */
    public void resetAutoLoginCount() {
        prefs.putInt(AUTO_LOGIN_COUNT_KEY, 0);
        try {
            prefs.flush();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    /**
     * 检查是否可以自动登录（未超过次数限制）
     * @return 如果可以自动登录返回true，否则返回false
     */
    public boolean canAutoLogin() {
        int count = prefs.getInt(AUTO_LOGIN_COUNT_KEY, 0);
        return count < MAX_AUTO_LOGIN_ATTEMPTS;
    }
    
    /**
     * 获取剩余自动登录次数
     * @return 剩余自动登录次数
     */
    public int getRemainingAutoLoginAttempts() {
        int count = prefs.getInt(AUTO_LOGIN_COUNT_KEY, 0);
        return Math.max(0, MAX_AUTO_LOGIN_ATTEMPTS - count);
    }
    
    /**
     * 获取已使用的自动登录次数
     * @return 已使用的自动登录次数
     */
    public int getUsedAutoLoginAttempts() {
        return prefs.getInt(AUTO_LOGIN_COUNT_KEY, 0);
    }
}
